home *** CD-ROM | disk | FTP | other *** search
/ Scene 96 / Scene 96 International Edition (Zyklop Software) (Disc 2) (1997).iso / misc / coding / tib_kewl / kewlizer.asm < prev    next >
Assembly Source File  |  1996-04-20  |  3KB  |  171 lines

  1. ;
  2. ;    KEWLIZER BY ZAREK iNDUSTRiEZ - give creditzz---- NOt! :)
  3. ;
  4.  
  5. .model    small
  6. .stack    100h
  7.  
  8. .data
  9.  
  10. ;    ------------------------------------------------------------------
  11.  
  12. Before    db    "NSAeECfnabTtOdIYo",0    ; 0 is the end marker of the table
  13. After    db    "Ñ$ÅΣΣ¢ƒ∩áßΓτ0δi¥Θ"
  14.  
  15. ;    just modify this fuck here for your own style...
  16. ;    ------------------------------------------------------------------
  17.  
  18. fucktxt        db    "KΣWLizεR - USE KEWL INFILE.EXT OUTFILE.EXT",13,10
  19.         db    "Twice the same filename will result to bullshit...",13,10,"$"
  20.  
  21. ; the folling 2 lines MUST follow each other (it's one string)
  22. oktxt        db    "KΣWLizεδ τo: "
  23. okname        db    128 dup (?)
  24.  
  25. readsize    dw    ?
  26.  
  27. readname    db    128 dup (?)
  28. writename    db    128 dup (?)
  29. readhandle    dw    ?
  30. writehandle    dw    ?
  31.  
  32. readbuff    db    8000 dup (?)
  33. writebuff    db    8000 dup (?)
  34.  
  35. .code
  36. .386p
  37.  
  38.  
  39. start:    push    @data
  40.     pop    es
  41.  
  42.     mov    si,81h
  43.     lodsb
  44.     cmp    al,0dh
  45.     je    fuck
  46.     cmp    al,32
  47.     jne    fuck 
  48.  
  49.     mov    di,offset readname
  50.     lodsb
  51.     cmp    al,32
  52.     je    fuck
  53.     cmp    al,0dh
  54.     je    fuck
  55. write1:    stosb
  56.     lodsb
  57.     cmp    al,0dh
  58.     je    fuck
  59.     cmp    al,32
  60.     je    write2
  61.     jmp    write1
  62. write2:    mov    al,0
  63.     stosb    ; endmarker of filename dor dos
  64.     mov    di,offset writename
  65.     lodsb
  66.     cmp    al,32
  67.     je    fuck
  68.     cmp    al,0dh
  69.     je    fuck
  70. write3:    stosb
  71.     lodsb
  72.     cmp    al,32
  73.     je    write4
  74.     cmp    al,0dh
  75.     jne    write3
  76. write4:    mov    al,0
  77.     stosb
  78.     jmp    ok
  79.  
  80. fuck:    push    @data
  81.     pop    ds
  82.     mov    dx,offset fucktxt
  83.     mov    ah,09h
  84.     int    21h
  85.     mov    ax,4cffh
  86.     int    21h
  87.  
  88. ok:    push    @data
  89.     pop    ds
  90.     push    ds
  91.     pop    es
  92.  
  93.     mov    si,offset writename
  94.     mov    di,offset okname
  95.     cld
  96. okz:    lodsb
  97.     cmp    al,0h
  98.     jne    okz2
  99.     mov    al,"$"    ; write end character of string
  100. okz2:    stosb
  101.     cmp    al,"$"
  102.     jne    okz
  103.  
  104.     mov    ah,3ch
  105.     xor    cx,cx
  106.     mov    dx,offset writename
  107.     int    21h
  108.     jb    fuck
  109.     mov    [writehandle],ax
  110.  
  111.     mov    ax,3d00h
  112.     mov    dx,offset readname
  113.     int    21h
  114.     jb    fuck
  115.     mov    [readhandle],ax
  116.  
  117. again:
  118.  
  119.     mov    bx,[readhandle]
  120.     mov    cx,2000
  121.     mov    dx,offset readbuff
  122.     mov    ah,3fh
  123.     int    21h
  124.     mov    [readsize],ax
  125.     cmp    ax,0h    ; nothing left to modify
  126.     je    done
  127.  
  128.     mov    si,offset readbuff
  129.     mov    di,offset writebuff
  130.     mov    cx,[readsize]
  131.     cld
  132.  
  133. dokewl:    lodsb
  134.     xor    bx,bx
  135. dokewl2:
  136.     mov    ah,[before+bx]
  137.     cmp    ah,0h
  138.     je    dokewl4
  139.     cmp    al,ah
  140.     je    dokewl3
  141.     inc    bx
  142.     jmp    dokewl2
  143. dokewl3:mov    al,[after+bx]
  144. dokewl4:stosb
  145.     loop    dokewl
  146.  
  147.     mov    bx,[writehandle]
  148.     mov    cx,[readsize]
  149.     mov    dx,offset writebuff
  150.     mov    ah,40h
  151.     int    21h
  152.  
  153.     jmp    again
  154.  
  155. done:
  156.  
  157.     mov    bx,[writehandle]
  158.     mov    ah,3eh
  159.     int    21h
  160.  
  161.     mov    bx,[readhandle]
  162.     mov    ah,3eh
  163.     int    21h
  164.  
  165.     mov    dx,offset oktxt
  166.     mov    ah,09h
  167.     int    21h
  168.     mov    ax,4c00h
  169.     int    21h
  170.  
  171. end    start